import numpy as np

class BaseTransformer:
    """
    数据处理模块的基类
    提供统一的接口，包括 `fit`, `transform`, `fit_transform`
    """

    def __init__(self):
        pass

    def fit(self, X, y=None):
        """
        计算所需的参数，通常是从数据 X 中推导出来的（例如均值，方差等）。
        需要在子类中实现。
        """
        raise NotImplementedError("子类必须实现 `fit` 方法")

    def transform(self, X):
        """
        使用 `fit` 中计算的参数对数据进行变换。
        需要在子类中实现。
        """
        raise NotImplementedError("子类必须实现 `transform` 方法")

    def fit_transform(self, X, y=None):
        """
        先进行 `fit` 计算，再对数据 `X` 进行 `transform`。
        默认实现为先调用 `fit` 再调用 `transform`。
        """
        self.fit(X, y)
        return self.transform(X)
